From: Jonas Dreßler Date: Fri, 20 Sep 2019 09:37:26 +0000 (+0200) Subject: workspace: Fix an incorrect signal check X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~811^2^2~42 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=48adb2ef4b3fa97c59952ca45918268e1e2d0160;p=gnome-shell.git workspace: Fix an incorrect signal check While commit 3094f863 was intended to cancel the ongoing idle hide timeout before we start a new one, a mistake slipped in there while rebasing: Obviously we should check if the signal id is NOT 0 here. This didn't prevent timeouts being started while old ones are still running and did override `this._idleHideOverlayId`, which caused the old timeouts to run indefinitely after an overlay actor was destroyed because we fail early (and don't return TRUE) in `_idleHideOverlay()`. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/735 --- diff --git a/js/ui/workspace.js b/js/ui/workspace.js index 317792832..a93b19add 100644 --- a/js/ui/workspace.js +++ b/js/ui/workspace.js @@ -684,7 +684,7 @@ var WindowOverlay = class { } _onHideChrome() { - if (this._idleHideOverlayId == 0) + if (this._idleHideOverlayId > 0) GLib.source_remove(this._idleHideOverlayId); this._idleHideOverlayId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, WINDOW_OVERLAY_IDLE_HIDE_TIMEOUT, this._idleHideOverlay.bind(this));